1. Field of the Invention
The present invention relates to image processing in an image capturing apparatus such as a digital camera.
2. Description of the Related Art
Generally, regarding image processing within digital cameras, in performing various conversion processing (for example, a gamma conversion) in, 3×3 matrix operation, a one-dimensional look-up table and the like are used. These conversion processings are appropriate for reducing the amount of hardware memory and gates in chip downsizing, and in scale reduction for energy saving. However; in recent years, advancement in hardware microminiaturization and reductions in IC power source voltage have allowed, chip size reductions and more effective energy savings to be realized. As a result, it is now possible to mount a complex circuit, a large capacity memory and the like within the IC. Accordingly, it is now becoming possible to perform complex image processing within digital cameras using a three-dimensional look-up table (hereinbelow, referred to as a “three-dimensional lattice point data table”), high-order matrix operation or the like.
However, in many cases, since the number of lattice points and bits are constrained by the hardware within the IC, high-precision image processing as in the case of application software cannot be performed. Further, when development processing (processing to develop a captured image) is performed on raw image data by an application, it is necessary to record data on the look-up table in an image file obtained by image capturing. In this arrangement, the file size of the raw image increases. For example, in an m-grid three-dimensional lattice point data table, because the number of grids in one dimension is m, the total number of grids is m3. Accordingly, the m-grid three-dimensional data table (three-dimensional look-up table), where three n-byte values are allotted to the respective grids, requires a capacity of m3×n×3 bytes. More concretely, in a 9-grid 8-bit three-dimensional lattice point data table requires a capacity of 2187 (=9×9×9×1×3) bytes. In contrast to this, a 33-grid 16-bit three-dimensional lattice point data table requires a hundredfold capacity, 215622 (=33×33×33×2×3) bytes. Further, when there are multiple user-selectable three-dimensional look-up tables, for the subsequent development processing, it is desirable to record all the three-dimensional look-up tables in a file. In this case, file size is further increased, as well as the time required to save the file into a memory. As a result, the number of image frames that can be captured in a series is limited.
U.S. Pat. No. 5,073,818 discloses a printer having a look-up table circuit for image processing. According to this U.S. Pat. No. 5,073,818, because the file size increases when the entire look-up table is stored, a look-up table for actual image conversion is generated from correction functions.
However, if all the data is generated using a look-up table for image processing with high bit precision, the data size of the look-up table becomes enormous, and the circuit scale increases. Further, to perform image processing using high-order matrix operations for image processing with high bit precision, a large number of multipliers are required, and when the number of bits is increased, the gate scale increases markedly. In actually, even when up to two-dimensional matrix operations are used, the level of freedom in image processing is limited with respect to processing using a three-dimensional lattice point data table.
Further, when image processing is performed by an application with an algorithm different from that used in image processing within a camera, it is necessary to previously set coefficients for obtaining a similar processing result in the camera. In this case, a large amount of data of the three-dimensional lattice point data table, which is not used in image processing within the camera, must be stored in the ROM of the camera, and the efficiency of memory usage is seriously lowered.